package br.ufrpe.bsi.pvs.xml.transformer;

import java.util.List;

import org.jdom2.Document;
import org.jdom2.Element;

import br.ufrpe.bsi.pvs.model.funcionario.Funcionario;
import br.ufrpe.bsi.pvs.model.roupa.Roupa;
import br.ufrpe.bsi.pvs.xml.XMLUtil;
import br.ufrpe.bsi.pvs.xml.request.AddRequestProcessor;
import br.ufrpe.bsi.pvs.xml.request.ListRequestProcessor;
import br.ufrpe.bsi.pvs.xml.response.ListedResponseProcess;
import br.ufrpe.bsi.pvs.xml.response.QueriedResponseProcess;

public class RoupaXML {

	public static Document parseAddRequest(Roupa r) {
		Document docF = AddRequestProcessor.getAddRequestDocument("roupa");
		Element classe = docF.getRootElement().getChild(XMLUtil.ELEM_REQUEST)
				.getChild(XMLUtil.ELEM_CLASS);

		Element descricao = new Element("descricao");
		descricao.addContent(r.getDescricao());

		Element quantEstoque = new Element("quantEstoque");
		quantEstoque.addContent(new Integer(r.getQuantEstoque()).toString());

		Element genero = new Element("genero");
		genero.addContent(String.valueOf(r.getGenero().intValue()));

		Element estilo = new Element("estilo");
		estilo.addContent(r.getEstilo().getNomeEstilo());

		Element tipoRoupa = new Element("tipoRoupa");
		tipoRoupa.addContent(r.getTipoRoupa().getNome());

		Element tamanho = new Element("tamanho");
		tamanho.addContent(r.getTamanho().toString());

		classe.addContent(descricao);
		classe.addContent(quantEstoque);
		classe.addContent(genero);
		classe.addContent(estilo);
		classe.addContent(tipoRoupa);
		classe.addContent(tamanho);

		return docF;

	}

	public static Document createResponseDocument(List<Roupa> listaR) {
		Document doc = ListedResponseProcess.getListedResponseDocument("roupa");
		Element response = doc.getRootElement().getChild(XMLUtil.ELEM_RESPONSE);

		for (Roupa roupa : listaR) {
			Element roupaElem = new Element("roupa");

			Element id = new Element("ID");
			id.addContent("" + roupa.getId());

			Element descricao = new Element("Descricao");
			descricao.addContent("" + roupa.getDescricao());

			Element quantEstoque = new Element("QuantEstoque");
			quantEstoque.addContent("" + roupa.getQuantEstoque());

			Element genero = new Element("Genero");
			genero.addContent("" + roupa.getGenero().intValue());

			Element estilo = new Element("Estilo");
			estilo.addContent("" + roupa.getEstilo().getNomeEstilo());

			Element tipoRoupa = new Element("TipoRoupa");
			tipoRoupa.addContent("" + roupa.getTipoRoupa().getNome());

			Element tamanho = new Element("Tamanho");
			tamanho.addContent("" + roupa.getTamanho().getTamanho());

			roupaElem.addContent(id);
			roupaElem.addContent(descricao);
			roupaElem.addContent(quantEstoque);
			roupaElem.addContent(genero);
			roupaElem.addContent(estilo);
			roupaElem.addContent(tipoRoupa);
			roupaElem.addContent(tamanho);
			
			response.addContent(roupaElem);
		}

		return doc;
	}

	public static Document parseListRequest() {
		 Document docF = ListRequestProcessor.getListRequestDocument("roupa");
	        Element classe = docF.getRootElement()
	        		.getChild(XMLUtil.ELEM_REQUEST)
	        			.getChild(XMLUtil.ELEM_CLASS);

	        return docF;
	}

}
